<?php
//require_once 'BaseController.php';

/**
 * AKB48先行抽選応募フォームコントローラクラス<br />
 *
 * @package apamanshop
 * @author H.Imamura
 * @copyright (c) 2012 SystemSoft Corp. All rights reserved
 */
class Inquiry_Akb201207Controller extends Apm_Controller_Base
{
	/** ベースURL **/
	protected $_baseurl    = null;
	protected $_aplbaseurl = null;
	protected $_sslurl     = null;

	/** テンプレート **/
	protected $_display_path   = null;
	protected $_main_helper    = null;
	protected $_entry_helper   = null;
	protected $_confirm_helper = null;
	protected $_send_helper    = null;
	protected $_senderr_helper = null;

	/** 共通パラメータ **/
	protected $title       = null;
	protected $description = null;
	protected $keywords    = null;
	protected $block_title = null;
	protected $block_read  = null;

	/**
	 * 初期処理
	 */
	public function preDispatch()
	{
		// ベースURL設定
		$this->_baseurl      = $this->_config['apm']['baseurl'];
		$this->_aplbaseurl   = $this->_config['apm']['apl']['static']['baseurl'];
		$this->_sslurl       = $this->_config['apm']['ssl']['baseurl'];
		
		$this->_display_path = APPLICATION_PATH . '/modules/inquiry/views/scripts/akb201207.tpl';
		
		// ヘルパー設定
		$this->_entry_helper   = $this->getApmHelper(APPLICATION_PATH . '/modules/inquiry/views/helpers/akb201207_entry.tpl');
		$this->_confirm_helper = $this->getApmHelper(APPLICATION_PATH . '/modules/inquiry/views/helpers/akb201207_confirm.tpl');
		$this->_send_helper    = $this->getApmHelper(APPLICATION_PATH . '/modules/inquiry/views/helpers/akb201207_send.tpl');
		$this->_senderr_helper = $this->getApmHelper(APPLICATION_PATH . '/modules/inquiry/views/helpers/akb201207_senderror.tpl');
		
		// CSS設定
		$this->addMetaCss('/css/common/valuable.css', array('type' => 'text/css','media' => 'all'));
		$this->addMetaCss('/css/inquiry/hp/form.css', array('type' => 'text/css','media' => 'all'));
		$this->addMetaCss('/css/cp.css', array('type' => 'text/css','media' => 'all'));
		
		// JS設定
		$this->addMetaJs('/app/js/jquery.validation.js');
		$this->addMetaJs('/app/js/inquiry/akb201207.js');
		
		// パラメータ取得
		$this->_params = $this->getParameters();
		// 共通パラメータ取得
		$this->getSubParams();
	}

	/**
	 * 後処理
	 */
	public function postDispatch()
	{
		// 共通パラメータ設定
		$this->setSubParams();
		
		//ブロック設定
		$this->_data['main'] = $this->_main_helper->getBlock($this->_data);
		
		//表示
		$this->display($this->_display_path);
	}

	/**
	 * インデックスアクション（入力フォーム）
	 *
	 */
	public function back_indexAction()
	{
		// メインテンプレート
		$this->_main_helper = $this->_entry_helper;
		
		// 入力デフォルト設定
		if (empty($this->_params['Target'])) {
			$this->_params['Target'] = '';
		}
		if (empty($this->_params['Sex'])) {
			$this->_params['Sex'] = '0';
		}
		if (empty($this->_params['PrefCd'])) {
			$this->_params['PrefCd'] = '00';
		}
		
		$this->block_title = '';	// 非表示
		
		// 値セット
		$this->_data = $this->_params;
	}

	/**
	 * 確認フォーム
	 *
	 */
	public function back_confirmAction()
	{
		// 必須項目がなければ入力画面へリダイレクト
		if (empty($this->_params['Target']) || empty($this->_params['Message']) ||
		    empty($this->_params['Name']) || empty($this->_params['Mail']) ||
		    empty($this->_params['Tel1']) || empty($this->_params['Tel2']) || empty($this->_params['Tel3'])) {
			
			Apm_Util::redirect($this->_sslurl.'inquiry/akb201207/');
			exit();
		}
		
		// メインテンプレート
		$this->_main_helper = $this->_confirm_helper;
		
		// Title
		$this->title .= ' 入力内容確認';
		
		// ページタイトル
		$this->block_title .= ' 入力内容確認';
		
		// パンくず
		$this->_breadcrumb->add('入力内容確認');
		
		// HTML編集
		$TargetStr = '';
		switch ($this->_params['Target']) {
			case '01':
				$TargetStr = '家族';
				break;
			case '02':
				$TargetStr = '友達';
				break;
			case '03':
				$TargetStr = '同僚';
				break;
			case '04':
				$TargetStr = '先輩';
				break;
			case '05':
				$TargetStr = '後輩';
				break;
			case '99':
				$TargetStr = 'その他';
				break;
		}
		$this->_params['TargetStr'] = $TargetStr;
		if (!empty($this->_params['Message'])) {
			// HTMLコードエスケープ
			$AddressStr = $this->htmlEsc($this->_params['Message']);
			$this->_params['MessageStr'] = $AddressStr;
		}
		if ($this->_params['Sex'] == '1') {
			$this->_params['SexStr'] = '女性';
		} else {
			$this->_params['SexStr'] = '男性';
		}
		if (!empty(Apm_Config_Shop::$PREF_LIST[$this->_params['PrefCd']])) {
			$this->_params['PrefStr'] = Apm_Config_Shop::$PREF_LIST[$this->_params['PrefCd']];
		} else {
			$this->_params['PrefStr'] = '';
		}
		if (!empty($this->_params['Address'])) {
			// HTMLコードエスケープ
			$AddressStr = $this->htmlEsc($this->_params['Address']);
			$this->_params['AddressStr'] = $AddressStr;
		}
		
		// 値セット
		$this->_data = $this->_params;
	}

	public function htmlEsc($str)
	{
		// HTMLコードエスケープ
		$search  = array('<', '>', "\r", "\n");
		$replace = array('&lt;', '&gt;', '', '<br/>');
		$RepStr = str_replace($search, $replace, $str);
		// 改行毎に分解
		$arrRepStr = explode('<br/>', $RepStr);
		$RepStr = '';
		foreach ($arrRepStr as $value) {
			$strSub = '';
			// 40文字毎に改行挿入
			while (strlen($value) > 40) {
				$strSub .= mb_substr($value, 0, 40).'<br/>';
				$value = mb_substr($value, 40);
			}
			$strSub .= $value;
			$RepStr .= $strSub.'<br/>';
		}
		return $RepStr;
	}

	/**
	 * 送信フォーム
	 *
	 */
	public function back_sendAction()
	{
		// 画面設定
		if ($this->_params['result'] == '1') {
			$this->_main_helper = $this->_send_helper;
			$this->title .= ' 送信完了';
			$this->block_title .= ' 送信完了';
			$this->_breadcrumb->add('送信完了');
		} else {
			$this->_main_helper = $this->_senderr_helper;
			$this->title .= ' 送信エラー';
			$this->block_title .= ' 送信エラー';
			$this->_breadcrumb->add('送信エラー');
		}
	}

	/**
	 * 共通パラメータ取得
	 *
	 */
	private function getSubParams()
	{
		$this->title       = '賃貸情報アパマンショップ[新生活応援メッセージを大募集]';
		$this->description = 'AKB48×アパマン今年もやります！アパマン48キャンペーン。アパマン48オリジナルグッズプレゼント！新生活応援メッセージを大募集。';
		$this->keywords    = 'AKB48,キャンペーン,'.Apm_Config_Search::KEYWORD_TOP;
		$this->block_title = '新生活応援メッセージを大募集';
		$this->block_read  = '';
		
		// パンくず設定
		$this->_breadcrumb->reset();
		$this->_breadcrumb->add(Apm_Config_Search::BREADCRUMB_TOP, $this->_baseurl);									// TOP
		$this->_breadcrumb->add('アパマン48キャンペーン2012年', $this->_baseurl . 'campaign/1206_akb48/index.html');	// キャンペーンLP
		$this->_breadcrumb->add('新生活応援メッセージを大募集', $this->_sslurl . 'inquiry/akb201207/');					// 応募フォーム
		
	}

	/**
	 * 共通パラメータ設定
	 *
	 */
	private function setSubParams()
	{
		// タイトル
		$this->setTitle($this->title);
		
		// Discription
		$this->setDescription($this->description, false);
		
		// Keywords
		$this->setKeywords($this->keywords);
		
		// パンくず
		$this->setBreadCrumb($this->_breadcrumb->generateBreadcrumb());
		
		// H1
		$this->_data['hi_title'] = $this->block_title;
		
		// アンカー
		$this->setAnchorLink('<p class="pagetop"><a href="javascript:backToTop()"><strong>' . $this->block_title . 'ページのトップへ</strong></a></p>');
		
		// URL
		$this->_data['baseurl'] = $this->_baseurl;
		$this->_data['sslurl']  = $this->_sslurl;
	}
}
?>